home *** CD-ROM | disk | FTP | other *** search
/ Programming Languages Suite / ProgramD2.iso / Borland / Borland C++ V5.02 / DOC.PAK / OWL5.TXT < prev    next >
Text File  |  1997-05-06  |  10KB  |  149 lines

  1. ObjectWindows 5.01
  2.  
  3. TABLE OF CONTENTS
  4.  1. New features
  5.  2. API, implementation, and organizational changes
  6.  3. Known problems
  7.  
  8. 1. New features or examples ObjectWindows v5.01 includes the
  9. following new features:  
  10.  
  11. -  Emulation of the Column Header common control when running
  12.    16-bit applications on Windows v3.1 or Windows NT.
  13.  
  14. OCF/OLE
  15. -  OCF now supports the Automation VARIANT type via the TAutoVal class.
  16. -  The AUTOWORD and AUTOEXCL examples (\BC5\EXAMPLES\OCF\) illustrate MS Word and MS Excel controllers, respectively.
  17. -  The COMSRVR illustrates a simple COM server.
  18.  
  19.  2. API/Implementation Changes and Fixes
  20. This section describes changes that were made to ObjectWindows v5.01:
  21. -  The EvCommand method of TGadgetWindow now attempts to dispatch a menu style command before rerouting the command to the Command Target. This allows derived toolbars, status bars, and toolboxes to have the first crack at commands.
  22. -  TGadgetWindow creates its tooltip window with the WS_DISABLED flag enabled to prevent the tooltip from accidentally grabbing input focus.
  23. -  TOleWindow no longer exposes methods/routines related to hosting OCXes in 16-bit since the required low-level support is not implemented in the underlying helper DLL, BOCOLE.DLL.
  24. -  TFrameWindow's GetCommandTarget uses the following search logic:
  25.      a. Focus window if it's a child of our client
  26.      b. Our client window
  27.      c. Focus window if it's a child of ours
  28.      d. Last focus child of ours
  29.      e. The frame itself
  30.    NOTE: In prior versions, items b and c were reversed; this often caused menus/buttongadgets to be disabled if a window not parent to the frame's client area (such as a control in a toolbar) has focus.
  31.  
  32. -  TPrinter's SetPageSizes is now virtual.
  33. -  TPaneSplitter's RemovePanes is now virtual.
  34. -  Nested classes within TDib are now properly exported from the ObjectWindows DLL.
  35. -  The size grip is removed from maximized frame.
  36.    NOTE: The size grip is not implemented in 16-bit as the current implementation of TUIPart does not emulate the functionality provided by the 'DrawFrameControl' API.
  37. -  The 'NGrowBy' member of TCelArray is initialized to 1 if an initial value was not specified.
  38. -  TTooltip only caches the hint text specified when OWL provides the underlying implementation of tooltips.
  39. -  TPropertySheet's PageUnchanged method now passes the window's handle when sending the PSM_UNCHANGED message.
  40. -  TPropertySheet provides a 'EnableSubclass' method to inform OWL that the property sheet should be subclassed and thunked. Use this method if you want to customize the sheet and/or added event handlers in a TPropertySheet-derived class.
  41. -  The TWinsockDll class now provides static member functions which bind to the corresponding API in the Winsock DLL the first time they are invoked. The prior version exposed 'function' objects which required that the DLL implement all functions whether they were invoked or not. The same applies to the TWinGDll class.
  42. -  TWindow provides two new methods Attach and Detach for instances when the underlying HWND may be destroyed and recreated.
  43.  
  44.  
  45.  3. Known problems
  46. -  The location is ignored when inserting a dockable window into the harbor.  
  47. -  The text of a TGlyphButton object is not painted correctly when the button is disabled.
  48. -  Various members of the TPrintDialog::TData object are not properly copied to the PRINTDLG or PAGESETUPDLG structures.
  49. -  Misc. painting problems with docking toolbars
  50. -  Status bars (TStatusBar) and the bottom of a decorated frame's client are not laid out correctly.
  51. -  Enabling 'ShrinkToClient' does not work properly with dialogs as client with decorated frame windows.
  52.  
  53. OCF/OLE
  54. -  Embedded or linked objects revert to their original size after being resized and made persistent.
  55. -  OLE documents are considered dirty as soon as an object is activated
  56. -  TOcDocument creates a TOcPart for both 'regular' embedded objects and OLE control loaded from a storage/stream (NOTE: A TOcControl should be created for controls).
  57.  
  58. BIDS/Class Library
  59. -  The constructor of some of the static instances of TRegKey causes an exception under Windows NT v3.51. [NOTE: The current implementation uses a __try/__except block to catch the exception. The exceptions are therefore only noticeable when running under a debugger, such as TD32].
  60. -  TFileName's MergeParts fails to check for existing backslashes.
  61. -  TFileName's Move relies on the 'MoveFileEx' API which is not implemented on Windows 95. 
  62. -  TButtonGadget fails to rebuild the bitmaps of the button upon a WM_SYSCOLORCHANGE message.
  63.  
  64.  
  65. ObjectWindows 5.0
  66. This file contains a list of the new features for Borland's ObjectWindows for C++ version 5.0 and information about the product that is not included in the documentation. The online Help contains updated information not found in the printed documentation. For the latest information about Borland C++ and how to contact Borland, see the README.TXT file included with your distribution disks.
  67.  
  68. TABLE OF CONTENTS
  69.  1. New features
  70.  2. API, implementation, and organizational changes
  71.  3. ObjectWindows examples directory structure
  72.  4. Rebuilding ObjectWindows Library
  73.  5. Known problems
  74.  
  75. 1. New features 
  76. ObjectWindows 5.0 includes the following new features:
  77.  -  Complete encapsulation of Windows Common Controls
  78.     Common Control            ObjectWindows Class(es)
  79.     Animation                         TAnimateCtrl
  80.     Column Header                     TColumnHeader
  81.     Progress Indicator                TGauge
  82.     Hotkey                            THotKey
  83.     Track Bar                        TSlider
  84.     List View                        TListWindow
  85.     Tree View                        TTreeWindow
  86.     PropertySheet & Property Pages    TPropertySheet/TPropertyPage
  87.     Tab                             TTabControl
  88.     Tooltip                            TTooltip
  89.     UpDown                            TUpDown
  90.     RichEdit                        TRichEdit
  91.     Drag Listbox                    TDragList
  92.  
  93.  -  Additional ObjectWindows Controls, such as glyph buttons, check listboxes, and notetabs 
  94.  -  Improved toolbar and status bar implementation with docking support and new gadgets (See the DOCKING and GADGETS examples under EXAMPLES\OWL\CLASSES)
  95.  -  OCX Container support: OWL's TOleWindow can now host OCX controls. The TOleDialog class provides a mechanism whereby OLE controls are dynamically instantiated when a dialog is created. The OCXDIALOG example illustrates. OWL and OCF also provides methods to catch events and invoke the properties and methods of the controls.
  96.  
  97.  -  New classes that manage UI drawing
  98.     UI Helper Class            Draws
  99.     TUIHandle                Manipulators for on-screen objects
  100.     TUIBorder                Border styles
  101.     TUIPart                    Frame and parts of controls
  102.     TUIFace                    Bitmap in various states (e.g. disabled)
  103.  
  104.  -  Support classes for OS extensions such as WinG, Winsock, and MAPI
  105.  -  Improved routing of WM_COMMAND messages
  106.  -  Encapsulation of the Win95 Shell Namespace with easy methods to browse through the hierarchy of objects (files, storage devices, printers, networks, etc.) on the desktop. 
  107.  
  108. 2. API, implementation, and organizational changes
  109. This section describes changes that have been made to ObjectWindows
  110. -  Several methods have been updated to use the intrinsic 'bool' type supported by the compiler
  111. -  The virtual method 'Error' of TValidator now takes a 'TWindow*' as parameter
  112. -  TBitmapGadget takes two additional, optional parameters: 'index' of image and 'flag' indicating whether the image is from the shared TCelArray instance
  113. -  Several methods of TDC which expected a TColor by value now take a 'const TColor&' instead
  114. -  Several methods of TEdit are now virtual so they may be overridden by the new TRichEdit class
  115. -  TGadget is now derived from TStreameableBase when compiled in an environment which does not support RTTI
  116. -  TGadgetWindow no longer relies on the WM_SIZE message to layout its gadgets; the WM_WINDOWPOSCHANGING message is used instead
  117. -  The 'margin' parameter of the TGauge constructor now defaults to 1
  118. -  TModule is no longer derived from TEventHandler
  119. -  The 'size' parameter of the TSeparatorGadget now defaults to 0, allowing the gadget to dynamically compute the proper value based on the environment settings.
  120. -  The constructor of TTextGadget now takes an additional, optional TFont* as parameter
  121. -  TWindow's GetParent now returns a 'TWindow*'. The 'GetParentH' returns the parent's window handle
  122. -  TControlGadget no longer defines the 'void Invalidate(bool = true)' method
  123. -  TTextGadgets now uses the 'tmMaxCharWidth' data member of the TEXTMETRICS structure to determine its size [instead of ((tmMaxCharWidth+tmAveCharWidth)/2)]
  124. -  TWindow's IdleAction now invokes the 'IdleAction' method of its children.
  125.  
  126. 3. New examples directory structure
  127. The directories containing ObjectWindows examples have been restructured
  128.  
  129. Directory structure                                    Contains
  130. + BC5
  131.    + Examples        
  132.       + OWL
  133.           + Apps        Samples using multiple OWL classes
  134.           + Classes        Smaller samples illustrating one or two classes
  135.           + Experts     Some standard AppExpert-generated applications
  136.           + Games        Sample Games written with OWL
  137.           + OCF            OLE Container/Server samples
  138.           + Tasks        Task-oriented samples
  139.           + Tools        Tools written with ObjectWindows
  140.           + Tutorial    Examples for use with the OWL Tutorial 
  141.           + WinAPI        Examples exploring various Windows API
  142.  
  143. 4. Rebuilding ObjectWindows Library
  144. The batch file BUILDOWL.BAT located in the SOURCE\OWL directory illustrates the MAKE options used to build the various versions of the ObjectWindows Library. The batch file only utilizes the basic options. You can run the batch file with additional parameters such as DIAGS=1 or CODEGUARD=2 to create the diagnostic or CodeGuarded versions of the library, respectively. 
  145. NOTE: The ObjectWindows library now contains two assembly modules (DIBBLT16.ASM & DIBBLT32.ASM) which require TASM when rebuilding the library. Prebuilt copies of the object modules are included in the respective subdirectories under the SOURCE\OWL\O directory if you do not have a copy of the Turbo Assembler.
  146.  
  147. 5. Known problems
  148. Some methods of the TUIxxxx helper objects do not have proper emulation support when running under Windows 3.1. Subsequently, some classes, such as TSeparatorGadget, may not behave correctly under Windows 3.1.
  149.